{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "provenance": [],
      "gpuType": "T4"
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "language_info": {
      "name": "python"
    },
    "accelerator": "GPU"
  },
  "cells": [
    {
      "cell_type": "markdown",
      "source": [
        "# Loading the Corpus"
      ],
      "metadata": {
        "id": "xUDBdXFJtsaz"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "target_url = \"https://cs.stanford.edu/people/karpathy/char-rnn/shakespear.txt\""
      ],
      "metadata": {
        "id": "BQAeB-gWtreA"
      },
      "execution_count": 1,
      "outputs": []
    },
    {
      "cell_type": "code",
      "execution_count": 2,
      "metadata": {
        "id": "37lM77r8tikI"
      },
      "outputs": [],
      "source": [
        "import urllib\n",
        "corpus = []\n",
        "for line in urllib.request.urlopen(target_url).readlines():\n",
        "    corpus.append(line.strip())"
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "# Comment out this cell, to run the model on the shakespear dataset\n",
        "corpus = ['cat chases mouse',\n",
        "        'cat catches mouse',\n",
        "        'cat eats mouse',\n",
        "        'mouse runs into hole',\n",
        "        'cat says bad words',\n",
        "        'cat and mouse are pals',\n",
        "        'cat and mouse are chums',\n",
        "        'mouse stores food in hole',\n",
        "        'cat stores food in house',\n",
        "        'mouse sleeps in hole',\n",
        "        'cat sleeps in house',\n",
        "        'cat and mouse are buddies',\n",
        "        'mouse lives in hole',\n",
        "        'cat lives in house']"
      ],
      "metadata": {
        "id": "EiNMLq2LUXZl"
      },
      "execution_count": 3,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "corpus[0]"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 56
        },
        "id": "Aa0MT3dYt29U",
        "outputId": "396efd8d-c8ba-4ac1-fbe9-457d4fe9b674"
      },
      "execution_count": 4,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "'cat chases mouse'"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "string"
            }
          },
          "metadata": {},
          "execution_count": 4
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "### Preprocessing our Corpus"
      ],
      "metadata": {
        "id": "npb6JwilvByB"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "import re, html\n",
        "\n",
        "def pad(line, context_window=4):\n",
        "  pad_size = context_window // 2\n",
        "  return [f\"<pad_{i}>\" for i in range(pad_size)] + line + [f\"<pad_{i}>\" for i in range(pad_size)]\n",
        "\n",
        "def preprocess(line, context_window):\n",
        "  if not isinstance(line, str):\n",
        "    line = line.decode('utf-8')\n",
        "  line = html.unescape(line).lower()\n",
        "  line = re.sub('[^a-z]',' ', line)\n",
        "  return pad(line.split(), context_window)\n"
      ],
      "metadata": {
        "id": "teNeApQauBzR"
      },
      "execution_count": 5,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "preprocess(corpus[5], 4)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "oVHqfdRzuZmK",
        "outputId": "e61794dc-0200-4ebd-b1ab-a34c869ab93a"
      },
      "execution_count": 6,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "['<pad_0>',\n",
              " '<pad_1>',\n",
              " 'cat',\n",
              " 'and',\n",
              " 'mouse',\n",
              " 'are',\n",
              " 'pals',\n",
              " '<pad_0>',\n",
              " '<pad_1>']"
            ]
          },
          "metadata": {},
          "execution_count": 6
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "CONTEXT_WINDOW = 6\n",
        "corpus_processed = [preprocess(line, CONTEXT_WINDOW) for line in corpus]"
      ],
      "metadata": {
        "id": "t_cNkF1hwGnN"
      },
      "execution_count": 7,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "# Preparing Co-Occurrence Matrix"
      ],
      "metadata": {
        "id": "YD-m0faev4kG"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# First we need our vocabulary\n",
        "vocab = {}\n",
        "size = 0\n",
        "\n",
        "for line in corpus_processed:\n",
        "  for word in line:\n",
        "    if word not in vocab:\n",
        "      vocab[word] = size\n",
        "      size += 1\n",
        "\n",
        "rev_vocab = {i:word for word, i in vocab.items()}"
      ],
      "metadata": {
        "id": "GQ_PVlcpua2M"
      },
      "execution_count": 8,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "vocab['mouse'], rev_vocab[5]"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "tw5APor1wdPk",
        "outputId": "374eaf2a-2fcd-4b1f-cae9-b3318e4f54ec"
      },
      "execution_count": 9,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(5, 'mouse')"
            ]
          },
          "metadata": {},
          "execution_count": 9
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "size"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "VNuWNKvlwd63",
        "outputId": "e87cee9b-1080-45ec-a6ce-2d7a79242913"
      },
      "execution_count": 10,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "25"
            ]
          },
          "metadata": {},
          "execution_count": 10
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "from collections import defaultdict\n",
        "from tqdm import tqdm\n",
        "CONTEXT_WINDOW = 6\n",
        "\n",
        "co_occurrence_statistics = defaultdict(int)\n",
        "\n",
        "for line in tqdm(corpus_processed):\n",
        "  for i in range(CONTEXT_WINDOW // 2, len(line) - CONTEXT_WINDOW // 2):\n",
        "    curr_word = line[i]\n",
        "    prev_words = line[i-CONTEXT_WINDOW // 2:i]\n",
        "    next_words = line[i+1: i+1+(CONTEXT_WINDOW // 2)]\n",
        "    for w in prev_words:\n",
        "      co_occurrence_statistics[(vocab[curr_word], vocab[w])] += 1\n",
        "    for w in next_words:\n",
        "      co_occurrence_statistics[(vocab[curr_word], vocab[w])] += 1"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "6Tqb2hsLwgSq",
        "outputId": "d22227fd-f93f-4316-abd9-7d299b8b3c95"
      },
      "execution_count": 11,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "100%|██████████| 14/14 [00:00<00:00, 16936.91it/s]\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "co_occurrence_statistics[(vocab['mouse'], vocab['and'])]"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "1GSVYiNsyA7m",
        "outputId": "d532a76d-1e12-456e-a63d-560ff6b749c7"
      },
      "execution_count": 12,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "3"
            ]
          },
          "metadata": {},
          "execution_count": 12
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "# Constants for Model Training"
      ],
      "metadata": {
        "id": "phVtaUdcicgX"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "MAX_CO_OCCURENCE_VALUE = max(co_occurrence_statistics.values())\n",
        "ALPHA = 1.1\n",
        "VOCAB_SIZE = size\n",
        "EMB_SIZE = 8\n",
        "NUM_EPOCHS = 400"
      ],
      "metadata": {
        "id": "tUZhC7na2rp2"
      },
      "execution_count": 13,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "# GloVe Embedding Model"
      ],
      "metadata": {
        "id": "K2NsZMpYyh03"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "import numpy as np\n",
        "import torch\n",
        "import torch.nn as nn\n",
        "from torch.utils.data import DataLoader, Dataset\n",
        "import torch.nn.functional as F"
      ],
      "metadata": {
        "id": "IkJmSMzYIKeh"
      },
      "execution_count": 14,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')\n",
        "device"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "5MSnvEsTINR5",
        "outputId": "f1bef106-4472-4cce-831f-2a7ffcc99ef0"
      },
      "execution_count": 15,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "device(type='cuda', index=0)"
            ]
          },
          "metadata": {},
          "execution_count": 15
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "\n",
        "class GloVe(nn.Module):\n",
        "\n",
        "    def __init__(self, vocab_size, embedding_size, x_max, alpha):\n",
        "        super().__init__()\n",
        "        self.word_emb = nn.Embedding(\n",
        "            num_embeddings=vocab_size,\n",
        "            embedding_dim=embedding_size,\n",
        "            sparse=True\n",
        "        )\n",
        "        self.context_emb = nn.Embedding(\n",
        "            num_embeddings=vocab_size,\n",
        "            embedding_dim=embedding_size,\n",
        "            sparse=True\n",
        "        )\n",
        "        self.bias_wv = nn.Parameter(\n",
        "            torch.randn(\n",
        "                vocab_size,\n",
        "                dtype=torch.float,\n",
        "            )\n",
        "        )\n",
        "        self.bias_cv = nn.Parameter(\n",
        "            torch.randn(\n",
        "                vocab_size,\n",
        "                dtype=torch.float,\n",
        "            )\n",
        "        )\n",
        "        self.weighting_func = lambda x: (x / x_max).float_power(alpha).clamp(0, 1)\n",
        "\n",
        "    def forward(self, i, j, x):\n",
        "        loss = torch.mul(self.word_emb(i), self.context_emb(j)).sum(dim=1)\n",
        "        loss = (loss + self.bias_wv[i] + self.bias_cv[j] - x.log()).square()\n",
        "        loss = torch.mul(self.weighting_func(x), loss).mean()\n",
        "        return loss\n",
        "\n",
        "glove = GloVe(vocab_size=VOCAB_SIZE, embedding_size=EMB_SIZE, x_max=MAX_CO_OCCURENCE_VALUE, alpha=1.1)\n",
        "glove.to(device)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "5nDytIGHyhFo",
        "outputId": "55d34fd6-63cc-4a98-94b6-4eb5c16f0b4e"
      },
      "execution_count": 16,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "GloVe(\n",
              "  (word_emb): Embedding(25, 8, sparse=True)\n",
              "  (context_emb): Embedding(25, 8, sparse=True)\n",
              ")"
            ]
          },
          "metadata": {},
          "execution_count": 16
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "optimizer = torch.optim.Adagrad(glove.parameters(), lr=0.001)"
      ],
      "metadata": {
        "id": "3P3ifruc3rQ3"
      },
      "execution_count": 17,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "class CustomDataset(torch.utils.data.Dataset):\n",
        "  def __init__(self):\n",
        "    self.X = []\n",
        "    for key, value in co_occurrence_statistics.items():\n",
        "      self.X.append([key, value])\n",
        "\n",
        "  def __getitem__(self, idx):\n",
        "    words, value = self.X[idx]\n",
        "    i, j = words\n",
        "    return torch.LongTensor([i, j]), torch.Tensor([value])\n",
        "\n",
        "  def __len__(self):\n",
        "    return len(self.X)\n",
        "\n",
        "dataset = CustomDataset()\n",
        "train_dataset = DataLoader(dataset, batch_size=128, shuffle=True)"
      ],
      "metadata": {
        "id": "Z4cJA7g66F-s"
      },
      "execution_count": 18,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "glove.train()\n",
        "\n",
        "losses = []\n",
        "for epoch in tqdm(range(NUM_EPOCHS)):\n",
        "  epoch_loss = 0\n",
        "  for batch in train_dataset:\n",
        "    loss = glove(\n",
        "        batch[0][:, 0].to(device),\n",
        "        batch[0][:, 1].to(device),\n",
        "        batch[1].to(device)\n",
        "    )\n",
        "    loss.backward()\n",
        "    optimizer.step()\n",
        "    optimizer.zero_grad()\n",
        "    epoch_loss += loss.cpu().detach().item()\n",
        "\n",
        "  losses.append(epoch_loss)\n",
        "print(f\"Epoch {epoch}: loss = {epoch_loss}\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "ryVYpfll36zj",
        "outputId": "77f0f466-3b94-4980-bf1e-01a45ae93eac"
      },
      "execution_count": 19,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "100%|██████████| 400/400 [00:05<00:00, 78.36it/s] "
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Epoch 399: loss = 3.0020276034970372\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "word_vectors = glove.word_emb(torch.LongTensor([i for i in range(VOCAB_SIZE)]).to(device)).cpu().detach().numpy()"
      ],
      "metadata": {
        "id": "-0zPGZyIOQ7o"
      },
      "execution_count": 20,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "import pandas as pd"
      ],
      "metadata": {
        "id": "GSBIPsRTR2R8"
      },
      "execution_count": 21,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "word_vectors = pd.DataFrame(word_vectors, columns=[f\"f_{i}\" for i in range(EMB_SIZE)])\n",
        "word_vectors['word'] = [rev_vocab[i] for i in range(0, VOCAB_SIZE)]"
      ],
      "metadata": {
        "id": "I8NjsLGqR6vu"
      },
      "execution_count": 23,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "word_vectors"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 860
        },
        "id": "gp89nwOUSOVh",
        "outputId": "e51b61a6-ecb3-40a9-9e6e-6368d2f2e84e"
      },
      "execution_count": 24,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "         f_0       f_1       f_2       f_3       f_4       f_5       f_6  \\\n",
              "0   1.081416  0.568234  0.308099 -1.694979 -0.211241 -0.662573  0.932585   \n",
              "1  -0.208200 -0.280876  0.631653 -1.754438 -0.504250  1.946553  0.460983   \n",
              "2  -0.580128  1.141947 -0.090196  2.147677 -0.128842 -0.620841 -0.640769   \n",
              "3   0.516378 -0.727173 -0.081480  0.267576 -0.139806  0.070418  1.449811   \n",
              "4   0.823734  0.414926 -1.319910  0.265080  0.227948  0.521079 -0.182234   \n",
              "5  -1.243630  1.403987  0.344798  0.591883  0.563113 -0.298015 -0.351682   \n",
              "6   0.121949  0.525015 -0.409265 -0.138984 -0.851979 -0.877041 -0.688245   \n",
              "7   1.114382 -0.704141  0.123445  1.254577  0.652279 -0.771592 -0.561271   \n",
              "8  -1.227648 -0.001321 -0.425722  1.467174 -0.568068  0.638128  1.025495   \n",
              "9  -0.486444  1.186100 -0.743911 -0.017930 -0.798968 -0.453647  0.999715   \n",
              "10  0.966037 -0.406932 -0.670683  1.221568 -0.413289 -0.450642 -2.738165   \n",
              "11  1.152938 -1.777668  1.972217 -0.676752  0.319415  0.363008  1.082494   \n",
              "12 -0.933663 -1.132606  1.477960  2.189348  0.615382  0.703607 -1.294415   \n",
              "13 -1.660214  0.717334 -0.241724  0.120040  0.142432 -0.159348  1.160479   \n",
              "14  1.585600 -2.077316 -1.287229  1.036013  0.533745  0.340924  0.048922   \n",
              "15 -0.787875  1.159657 -2.166786  0.393916  0.954085  0.761359 -1.575345   \n",
              "16  0.006143  0.099820 -1.151418  0.863015 -1.837935  1.112032 -0.264795   \n",
              "17  0.611837 -0.110681  0.536868  0.193883 -0.094050  0.556820  1.480961   \n",
              "18 -0.263406  0.497589  0.048579 -0.407663  1.217808  0.052829 -0.131747   \n",
              "19  0.053701  2.838538 -0.716667 -2.068695  2.358964 -0.056469  2.010604   \n",
              "20  0.602029 -1.928832 -0.433197 -0.943485 -1.188014 -0.736797  0.111646   \n",
              "21  0.452783  1.274258  1.055348  1.209193  0.315726 -0.763647 -0.339293   \n",
              "22  0.600482  0.922775 -2.452235 -0.225079 -2.399330 -1.951681 -0.987080   \n",
              "23  0.270943  0.577013 -0.789143  1.160706 -0.955444 -0.764100 -0.351551   \n",
              "24  1.658462  0.648206  0.736978  0.187973 -0.975108 -1.665697  0.977648   \n",
              "\n",
              "         f_7     word  \n",
              "0  -0.902042  <pad_0>  \n",
              "1   0.822893  <pad_1>  \n",
              "2   0.363005  <pad_2>  \n",
              "3   1.002763      cat  \n",
              "4  -0.352850   chases  \n",
              "5  -1.210916    mouse  \n",
              "6  -0.568349  catches  \n",
              "7  -0.498150     eats  \n",
              "8   0.003737     runs  \n",
              "9   1.213518     into  \n",
              "10 -1.698161     hole  \n",
              "11  2.062824     says  \n",
              "12 -0.730141      bad  \n",
              "13  1.875272    words  \n",
              "14 -1.496092      and  \n",
              "15  0.925143      are  \n",
              "16 -0.892277     pals  \n",
              "17  0.876035    chums  \n",
              "18 -0.996864   stores  \n",
              "19 -0.239563     food  \n",
              "20  1.693238       in  \n",
              "21  0.459625    house  \n",
              "22  0.171422   sleeps  \n",
              "23 -2.192275  buddies  \n",
              "24  0.373983    lives  "
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-908142a9-2116-4c06-9d5a-30bf5f840f61\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>f_0</th>\n",
              "      <th>f_1</th>\n",
              "      <th>f_2</th>\n",
              "      <th>f_3</th>\n",
              "      <th>f_4</th>\n",
              "      <th>f_5</th>\n",
              "      <th>f_6</th>\n",
              "      <th>f_7</th>\n",
              "      <th>word</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>1.081416</td>\n",
              "      <td>0.568234</td>\n",
              "      <td>0.308099</td>\n",
              "      <td>-1.694979</td>\n",
              "      <td>-0.211241</td>\n",
              "      <td>-0.662573</td>\n",
              "      <td>0.932585</td>\n",
              "      <td>-0.902042</td>\n",
              "      <td>&lt;pad_0&gt;</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>-0.208200</td>\n",
              "      <td>-0.280876</td>\n",
              "      <td>0.631653</td>\n",
              "      <td>-1.754438</td>\n",
              "      <td>-0.504250</td>\n",
              "      <td>1.946553</td>\n",
              "      <td>0.460983</td>\n",
              "      <td>0.822893</td>\n",
              "      <td>&lt;pad_1&gt;</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>-0.580128</td>\n",
              "      <td>1.141947</td>\n",
              "      <td>-0.090196</td>\n",
              "      <td>2.147677</td>\n",
              "      <td>-0.128842</td>\n",
              "      <td>-0.620841</td>\n",
              "      <td>-0.640769</td>\n",
              "      <td>0.363005</td>\n",
              "      <td>&lt;pad_2&gt;</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>0.516378</td>\n",
              "      <td>-0.727173</td>\n",
              "      <td>-0.081480</td>\n",
              "      <td>0.267576</td>\n",
              "      <td>-0.139806</td>\n",
              "      <td>0.070418</td>\n",
              "      <td>1.449811</td>\n",
              "      <td>1.002763</td>\n",
              "      <td>cat</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>0.823734</td>\n",
              "      <td>0.414926</td>\n",
              "      <td>-1.319910</td>\n",
              "      <td>0.265080</td>\n",
              "      <td>0.227948</td>\n",
              "      <td>0.521079</td>\n",
              "      <td>-0.182234</td>\n",
              "      <td>-0.352850</td>\n",
              "      <td>chases</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>5</th>\n",
              "      <td>-1.243630</td>\n",
              "      <td>1.403987</td>\n",
              "      <td>0.344798</td>\n",
              "      <td>0.591883</td>\n",
              "      <td>0.563113</td>\n",
              "      <td>-0.298015</td>\n",
              "      <td>-0.351682</td>\n",
              "      <td>-1.210916</td>\n",
              "      <td>mouse</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>6</th>\n",
              "      <td>0.121949</td>\n",
              "      <td>0.525015</td>\n",
              "      <td>-0.409265</td>\n",
              "      <td>-0.138984</td>\n",
              "      <td>-0.851979</td>\n",
              "      <td>-0.877041</td>\n",
              "      <td>-0.688245</td>\n",
              "      <td>-0.568349</td>\n",
              "      <td>catches</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>7</th>\n",
              "      <td>1.114382</td>\n",
              "      <td>-0.704141</td>\n",
              "      <td>0.123445</td>\n",
              "      <td>1.254577</td>\n",
              "      <td>0.652279</td>\n",
              "      <td>-0.771592</td>\n",
              "      <td>-0.561271</td>\n",
              "      <td>-0.498150</td>\n",
              "      <td>eats</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>8</th>\n",
              "      <td>-1.227648</td>\n",
              "      <td>-0.001321</td>\n",
              "      <td>-0.425722</td>\n",
              "      <td>1.467174</td>\n",
              "      <td>-0.568068</td>\n",
              "      <td>0.638128</td>\n",
              "      <td>1.025495</td>\n",
              "      <td>0.003737</td>\n",
              "      <td>runs</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>9</th>\n",
              "      <td>-0.486444</td>\n",
              "      <td>1.186100</td>\n",
              "      <td>-0.743911</td>\n",
              "      <td>-0.017930</td>\n",
              "      <td>-0.798968</td>\n",
              "      <td>-0.453647</td>\n",
              "      <td>0.999715</td>\n",
              "      <td>1.213518</td>\n",
              "      <td>into</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>10</th>\n",
              "      <td>0.966037</td>\n",
              "      <td>-0.406932</td>\n",
              "      <td>-0.670683</td>\n",
              "      <td>1.221568</td>\n",
              "      <td>-0.413289</td>\n",
              "      <td>-0.450642</td>\n",
              "      <td>-2.738165</td>\n",
              "      <td>-1.698161</td>\n",
              "      <td>hole</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>11</th>\n",
              "      <td>1.152938</td>\n",
              "      <td>-1.777668</td>\n",
              "      <td>1.972217</td>\n",
              "      <td>-0.676752</td>\n",
              "      <td>0.319415</td>\n",
              "      <td>0.363008</td>\n",
              "      <td>1.082494</td>\n",
              "      <td>2.062824</td>\n",
              "      <td>says</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>12</th>\n",
              "      <td>-0.933663</td>\n",
              "      <td>-1.132606</td>\n",
              "      <td>1.477960</td>\n",
              "      <td>2.189348</td>\n",
              "      <td>0.615382</td>\n",
              "      <td>0.703607</td>\n",
              "      <td>-1.294415</td>\n",
              "      <td>-0.730141</td>\n",
              "      <td>bad</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>13</th>\n",
              "      <td>-1.660214</td>\n",
              "      <td>0.717334</td>\n",
              "      <td>-0.241724</td>\n",
              "      <td>0.120040</td>\n",
              "      <td>0.142432</td>\n",
              "      <td>-0.159348</td>\n",
              "      <td>1.160479</td>\n",
              "      <td>1.875272</td>\n",
              "      <td>words</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>14</th>\n",
              "      <td>1.585600</td>\n",
              "      <td>-2.077316</td>\n",
              "      <td>-1.287229</td>\n",
              "      <td>1.036013</td>\n",
              "      <td>0.533745</td>\n",
              "      <td>0.340924</td>\n",
              "      <td>0.048922</td>\n",
              "      <td>-1.496092</td>\n",
              "      <td>and</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>15</th>\n",
              "      <td>-0.787875</td>\n",
              "      <td>1.159657</td>\n",
              "      <td>-2.166786</td>\n",
              "      <td>0.393916</td>\n",
              "      <td>0.954085</td>\n",
              "      <td>0.761359</td>\n",
              "      <td>-1.575345</td>\n",
              "      <td>0.925143</td>\n",
              "      <td>are</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>16</th>\n",
              "      <td>0.006143</td>\n",
              "      <td>0.099820</td>\n",
              "      <td>-1.151418</td>\n",
              "      <td>0.863015</td>\n",
              "      <td>-1.837935</td>\n",
              "      <td>1.112032</td>\n",
              "      <td>-0.264795</td>\n",
              "      <td>-0.892277</td>\n",
              "      <td>pals</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>17</th>\n",
              "      <td>0.611837</td>\n",
              "      <td>-0.110681</td>\n",
              "      <td>0.536868</td>\n",
              "      <td>0.193883</td>\n",
              "      <td>-0.094050</td>\n",
              "      <td>0.556820</td>\n",
              "      <td>1.480961</td>\n",
              "      <td>0.876035</td>\n",
              "      <td>chums</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>18</th>\n",
              "      <td>-0.263406</td>\n",
              "      <td>0.497589</td>\n",
              "      <td>0.048579</td>\n",
              "      <td>-0.407663</td>\n",
              "      <td>1.217808</td>\n",
              "      <td>0.052829</td>\n",
              "      <td>-0.131747</td>\n",
              "      <td>-0.996864</td>\n",
              "      <td>stores</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>19</th>\n",
              "      <td>0.053701</td>\n",
              "      <td>2.838538</td>\n",
              "      <td>-0.716667</td>\n",
              "      <td>-2.068695</td>\n",
              "      <td>2.358964</td>\n",
              "      <td>-0.056469</td>\n",
              "      <td>2.010604</td>\n",
              "      <td>-0.239563</td>\n",
              "      <td>food</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>20</th>\n",
              "      <td>0.602029</td>\n",
              "      <td>-1.928832</td>\n",
              "      <td>-0.433197</td>\n",
              "      <td>-0.943485</td>\n",
              "      <td>-1.188014</td>\n",
              "      <td>-0.736797</td>\n",
              "      <td>0.111646</td>\n",
              "      <td>1.693238</td>\n",
              "      <td>in</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>21</th>\n",
              "      <td>0.452783</td>\n",
              "      <td>1.274258</td>\n",
              "      <td>1.055348</td>\n",
              "      <td>1.209193</td>\n",
              "      <td>0.315726</td>\n",
              "      <td>-0.763647</td>\n",
              "      <td>-0.339293</td>\n",
              "      <td>0.459625</td>\n",
              "      <td>house</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>22</th>\n",
              "      <td>0.600482</td>\n",
              "      <td>0.922775</td>\n",
              "      <td>-2.452235</td>\n",
              "      <td>-0.225079</td>\n",
              "      <td>-2.399330</td>\n",
              "      <td>-1.951681</td>\n",
              "      <td>-0.987080</td>\n",
              "      <td>0.171422</td>\n",
              "      <td>sleeps</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>23</th>\n",
              "      <td>0.270943</td>\n",
              "      <td>0.577013</td>\n",
              "      <td>-0.789143</td>\n",
              "      <td>1.160706</td>\n",
              "      <td>-0.955444</td>\n",
              "      <td>-0.764100</td>\n",
              "      <td>-0.351551</td>\n",
              "      <td>-2.192275</td>\n",
              "      <td>buddies</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>24</th>\n",
              "      <td>1.658462</td>\n",
              "      <td>0.648206</td>\n",
              "      <td>0.736978</td>\n",
              "      <td>0.187973</td>\n",
              "      <td>-0.975108</td>\n",
              "      <td>-1.665697</td>\n",
              "      <td>0.977648</td>\n",
              "      <td>0.373983</td>\n",
              "      <td>lives</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-908142a9-2116-4c06-9d5a-30bf5f840f61')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-908142a9-2116-4c06-9d5a-30bf5f840f61 button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-908142a9-2116-4c06-9d5a-30bf5f840f61');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "<div id=\"df-78354327-6df1-4bbe-964f-28e46d9b21b2\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-78354327-6df1-4bbe-964f-28e46d9b21b2')\"\n",
              "            title=\"Suggest charts\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "     width=\"24px\">\n",
              "    <g>\n",
              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
              "    </g>\n",
              "</svg>\n",
              "  </button>\n",
              "\n",
              "<style>\n",
              "  .colab-df-quickchart {\n",
              "      --bg-color: #E8F0FE;\n",
              "      --fill-color: #1967D2;\n",
              "      --hover-bg-color: #E2EBFA;\n",
              "      --hover-fill-color: #174EA6;\n",
              "      --disabled-fill-color: #AAA;\n",
              "      --disabled-bg-color: #DDD;\n",
              "  }\n",
              "\n",
              "  [theme=dark] .colab-df-quickchart {\n",
              "      --bg-color: #3B4455;\n",
              "      --fill-color: #D2E3FC;\n",
              "      --hover-bg-color: #434B5C;\n",
              "      --hover-fill-color: #FFFFFF;\n",
              "      --disabled-bg-color: #3B4455;\n",
              "      --disabled-fill-color: #666;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart {\n",
              "    background-color: var(--bg-color);\n",
              "    border: none;\n",
              "    border-radius: 50%;\n",
              "    cursor: pointer;\n",
              "    display: none;\n",
              "    fill: var(--fill-color);\n",
              "    height: 32px;\n",
              "    padding: 0;\n",
              "    width: 32px;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart:hover {\n",
              "    background-color: var(--hover-bg-color);\n",
              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "    fill: var(--button-hover-fill-color);\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart-complete:disabled,\n",
              "  .colab-df-quickchart-complete:disabled:hover {\n",
              "    background-color: var(--disabled-bg-color);\n",
              "    fill: var(--disabled-fill-color);\n",
              "    box-shadow: none;\n",
              "  }\n",
              "\n",
              "  .colab-df-spinner {\n",
              "    border: 2px solid var(--fill-color);\n",
              "    border-color: transparent;\n",
              "    border-bottom-color: var(--fill-color);\n",
              "    animation:\n",
              "      spin 1s steps(1) infinite;\n",
              "  }\n",
              "\n",
              "  @keyframes spin {\n",
              "    0% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "      border-left-color: var(--fill-color);\n",
              "    }\n",
              "    20% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    30% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    40% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    60% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    80% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "    90% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "  }\n",
              "</style>\n",
              "\n",
              "  <script>\n",
              "    async function quickchart(key) {\n",
              "      const quickchartButtonEl =\n",
              "        document.querySelector('#' + key + ' button');\n",
              "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
              "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
              "      try {\n",
              "        const charts = await google.colab.kernel.invokeFunction(\n",
              "            'suggestCharts', [key], {});\n",
              "      } catch (error) {\n",
              "        console.error('Error during call to suggestCharts:', error);\n",
              "      }\n",
              "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
              "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
              "    }\n",
              "    (() => {\n",
              "      let quickchartButtonEl =\n",
              "        document.querySelector('#df-78354327-6df1-4bbe-964f-28e46d9b21b2 button');\n",
              "      quickchartButtonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "    })();\n",
              "  </script>\n",
              "</div>\n",
              "    </div>\n",
              "  </div>\n"
            ]
          },
          "metadata": {},
          "execution_count": 24
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "from sklearn.decomposition import PCA"
      ],
      "metadata": {
        "id": "cOSd58eESUOx"
      },
      "execution_count": 25,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "pca = PCA(2)"
      ],
      "metadata": {
        "id": "F1KZvZSSSe_S"
      },
      "execution_count": 26,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "pca_vectors = pca.fit_transform(word_vectors.to_numpy()[:,:-1])"
      ],
      "metadata": {
        "id": "byaVqfucSge8"
      },
      "execution_count": 27,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "import matplotlib.pyplot as plt\n",
        "plt.figure(figsize=(10, 10))\n",
        "plt.scatter(pca_vectors[:,0], pca_vectors[:,1])\n",
        "for i, word in enumerate(word_vectors['word'].tolist()):\n",
        "  x, y = pca_vectors[i]\n",
        "  plt.annotate(word, (x, y))\n",
        "plt.title(\"Visualizing Word Embeddings after reducing dimensions with PCA\")\n",
        "plt.xlabel(\"PCA-1\")\n",
        "plt.ylabel(\"PCA-2\")\n",
        "plt.show()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 892
        },
        "id": "nRyhokXxSrVj",
        "outputId": "dff4cc6a-6886-4daf-b7ee-145702bbe9f5"
      },
      "execution_count": 28,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 1000x1000 with 1 Axes>"
            ],
            "image/png": "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4xFtAlYdU2ycdQtfX19duHBBFy5csCw7duyYbty4YZlPMGfOnAoNDbV6XlBQkNVjk8mkmjVrKiAgQAcPHlTmzJm1fPly5c6dW97e3jp79qyKFCli9ePj4/NMxwwAeD48UZe8mJgYXblyRfnz5090/ZUrVxQTE5MshQEAEG9vcFiCK0sPCw2/q73BYapeOLtlWcOGDVW6dGl16tRJkydPVkxMjPr166e6deuqUqVKku6P+jphwgT9+OOPql69uubPn68jR46ofPn73fz27NmjjRs3qlGjRsqVK5f27NmjK1euyNfXV5IUEBCgQYMGyWw2y9/fX1FRUdq/f7+uX7+uoUOHptAZAQCklie6wlSyZElt2LDB5vp169apZMmSz1wUAAAPuhz56LBkq53JZNLKlSuVLVs21alTRw0bNlShQoW0ZMkSS5vGjRtr1KhRGjFihCpXrqzIyEh17drVst7NzU1//PGHXnnlFRUrVkwffPCBJk2apCZNmkiSevfurVmzZmn27NkqXbq06tatqzlz5nCFCQAyCJPxcMftR/juu+80dOhQLV68WE2bNrVat2rVKnXs2FFffPGF3njjjWQvNDlERETIbDYrPDxcbm5uaV0OACCJdp25po4zH39P0KI+1ayuMAEAYEtSs8ETdcl744039Mcff6h58+YqUaKEihcvLkn6+++/dfLkSbVr1+65DUsAgPSrio+HvMxOuhR+N9H7mEySPM1OquLjkdqlAQAyuCeeuHb+/PlasmSJihUrppMnT+rEiRMqXry4Fi1apEWLFqVEjQCAF5y9nUljmt0fpMH00Lr4x2Oa+cne7uG1AAA8mye6whQbG6uJEyfq119/VXR0tJo2baqxY8fK2dk5peoDAECS5F/KSzM6V0gwD5On2UljmvnJv5RXGlYHAMionigwffrppxo7dqwaNmwoZ2dnffXVV7py5Yp++OGHlKoPAAAL/1JeetnPU3uDw3Q58q5yud7vhseVJQBASnmiQR+KFi2qYcOG6c0335QkbdiwQa+++qru3LkjO7sn7t2X6hj0AQAAAICU9GzwRCknJCREr7zyiuVxw4YNZTKZ9O+//z59pQAAAADwnHqiwBQTEyMnJyerZZkyZdK9e/eStSgAAAAAeB480T1MhmGoe/fucnR0tCy7e/eu3nrrLWXNmtWy7Jdffkm+CgEAAAAgjTxR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\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [],
      "metadata": {
        "id": "igZiNgAqT9sP"
      },
      "execution_count": null,
      "outputs": []
    }
  ]
}